#include "formatters/basic_formatter.hpp"
#include "utils/log_level_utils.hpp"
#include <chrono>
#include <iomanip>
#include <sstream>

std::string BasicFormatter::format(const LogEntry& entry) const {
    // 获取当前时间
    auto in_time_t = std::chrono::system_clock::to_time_t(entry.timestamp);

    std::stringstream ss;
    // 格式化时间戳 （YYYY-MM-DD HH:MM:SS）
    ss << "[" << std::put_time(std::localtime(&in_time_t), "%Y-%m-%d %H:%M:%S") << "]";
    // 添加日志级别
    ss << "[" << axon_logger::utils::levelToString(entry.level) << "] ";
    // 添加日志消息
    ss << entry.message;

    return ss.str();
}




